package br.com.trumah.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.trumah.dao.interfaces.DoadorFisicoDAO;
import br.com.trumah.model.Beneficiario;
import br.com.trumah.model.DoadorFisico;
import br.com.trumah.utils.HibernateUtil;

public class DoadorFisicoDAOImpl implements DoadorFisicoDAO {

	@Override
	public void salvar(DoadorFisico doadorFisico) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.save(doadorFisico);
		t.commit();
	}

	@Override
	public DoadorFisico obterDoadorFisico(long id) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		return (DoadorFisico) session.load(DoadorFisico.class, id);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<DoadorFisico> listar() {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		List<DoadorFisico> lista = session.createQuery("from DoadorFisico").list();
		t.commit();
		return lista;
	}

	@Override
	public void remover(DoadorFisico doadorFisico) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.delete(doadorFisico);
		t.commit();
	}

	@Override
	public void atualizar(DoadorFisico doadorFisico) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.update(doadorFisico);
		t.commit();
	}

}
